iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

這些日子我學到的JavaScript 系列 第 5

這些日子我學到的JavaScript:Day05-函式1

  • 分享至 

  • xImage
  •  

什麼是函式 funciton

簡單來說「函式」指的是將一或多段程式指令包裝起來,可以重複使用,也方便維護。

函式的寫法
基本組合:宣告函式 + 函式名稱

function greet(){
  alert('歡迎光臨!');
  alert('請問你要吃些什麼?');
}

函式名稱後面有小括號,裡面可以帶入參數。大括號裡放的則是你希望函式做的動作。寫好之後並不會執行,需要執行該函式時,只要呼叫它就可以了。呼叫方式如下:
greet();

上面這種經過宣告而成立的函式稱為命名函式,必須經過呼叫才會執行;而還有另一種函式叫做匿名函式,顧名思義,是不用取名字的,而且位置要放在我們期望它執行的地方,解譯器執行到這一行的時候才會執行,因此也無法另外呼叫它。

全域變數與區域變數

乍看之下「變數」不應該放在函式篇,但是以下要談的東西必須搭配函式的概念才比較好理解。讓我們來了解一下全域與區域變數的意涵。

區域變數:寫在函式內的變數稱為區域變數,只在函式內有效,當函式執行完以後就結束了,所以當我們在函式的外面再去查詢的時候是查不到變數值的。

例:

function count(Num){
    var total = Num * 8;
}
console.log(total);

若此時在 console 輸出,會出現錯誤
這是因為,我們雖然有宣告變數 total ,但是是在 function 內,作用域也只在 fucntion 內,這就是所謂的區域變數。

全域變數:寫在函式之外稱為全域變數,會被記憶在 window 物件中,但是記憶體會越來越肥,所以還是比較推薦使用區域變數。

今天改變一下 total 變數的位置,如下:

var total;

function count(Num){
    alert(hello);
}
console.log(total);

此時輸出會是 undefinded 因為我們宣告了 total 變數,卻還未賦予值。
而 total 會被視為全域變數,因為它的作用域就不只被侷限在 function 內,而是全部的作用域。


上一篇
這些日子我學到的JavaScript:Day04-變數2
下一篇
這些日子我學到的JavaScript:Day06-函式2
系列文
這些日子我學到的JavaScript 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言